'''
字典的创建：
1.使用花括号定义dict = {'one':1,'two':2}
2.使用类型构造器dict(one=1,two=2)
3.使用字典推导式：{x:x**2 for x in range(10)}
'''
#已知有两个列表，分别为:[ 'name1', 'name2', 'name3' ] [ '1111', '2222', '3333'] 现需要将这两个列表组成一个如下字典，请编写程序实现：{ 'name1':'1111', 'name2':'2222', 'name3':'3333' }
list_1 = [ 'name1', 'name2', 'name3' ]
list_2 = [ '1111', '2222', '3333']
dict_1 = {list_1[a]:list_2[a] for a in range(0,len(list_1))}
print(dict_1)
'''
字典的内置函数：
1.访问字典所有元素
    dict.items()返回所有键值对
    dict.keys()返回所有key
    dict.values()返回所有value
'''
print(dict_1.items())
print(dict_1.keys())
print(dict_1.values())
'''
2.访问字典指定元素的值
    dict.get()
'''
print(dict_1.get('name1'))
'''
3.遍历整个字典：
    for key,value in dict.items():
        print(key)
        print(value)
'''
for key,value in dict_1.items():
    print(f"key is {key}, value is {value}")
'''
4.新增键值对
    dict['key'] = 'value'
⚠️⚠️⚠️注意：如果说键已存在，使用此方法则是更新该键的值
'''
dict_1['name4'] = '444'
print(dict_1.items())
dict_1['name1'] = 'yjz'
dict_1['name2'] = 'waq'
dict_1['name3'] = 'gll'
dict_1['name4'] = 'zsf'
print(dict_1.items())
'''
5.一些其他的用法：
dict.setdefault(key[,default])
    如果字典存在key,则返回该键本来对应的值,不做修改
    如果字典不存在key,则插入default的键key，并返回default（如果没有加值则为None）
'''
print(dict_1.setdefault('name1','yjj'))
print(dict_1.setdefault('name5','rxj'))
print(dict_1.items())
'''
6.字典的更新
dict |= new_dict
    用新的字典的键和值来更新旧的字典，新字典的键和值优先
'''
dict_2 ={'name1':'yjj','name2':'waq','name6':'zlf'}
dict_1 |= dict_2
print(dict_1.items())
'''
7.利用zip函数合并两个列表为字典
    dict = dict(zip(list1,list2))
'''
dict_3 = dict(zip(list_1,list_2))
print(dict_3.items())
del(dict_3)
